<?php
	session_start();
?>
<table width="100%" id="menunhom_sn_table">
<tr height="500px">
    <td id="mustresize" class="ui-widget-content" valign="top"  style="margin:0;" width="200px">
        <h3 class="ui-widget-header">Nhóm menu</h3>
        <div id="menunhom_tree" style="max-height:430px;min-height:430px;overflow:scroll;">
        </div>
    </td>
    <td class="ui-widget-content" valign="top" style="margin:0;">
        <h3 class="ui-widget-header" id="h3title">Nội dung</h3>
        <div id="menumuc_tree"></div>
    </td>
</tr>
<tr>
	<td colspan="2">
    	<input type="text" id="menunhom_search" value="" size="50">
        <input type="radio" id="cso1" name="menunhom_search_option" value="1" checked="checked"/>Chỉ tìm nhóm menu
        <input type="radio" id="cso2" name="menunhom_search_option" />Tìm nhóm menu có món
    </td>
</tr>
</table>
<script language="javascript" type="text/javascript">
        $("#menunhom_tree").jstree({
			"plugins" : ["themes","xml_data","ui","crrm","hotkeys","contextmenu","search","dnd","adv_search"],
			"themes" : {
				"theme" : "default"
			},
			"contextmenu": {
				items: function(node){
					var a={};
						a.create={
								"label":"Tạo nhóm menu",
								"icon":false,
								"action":function(){
									check_right("<?php echo $_SESSION["un"];?>","insert","menunhom",
									function(){
										$("#menunhom_tree").jstree("create");
									},
									function(){
										msgbox("fail","Không có quyền thêm nhóm menu !");
									});
									
								}
						};
						a.remove={
							"label":"Xóa nhóm menu",
							"icon":false,
							"action":function(){
									check_right("<?php echo $_SESSION["un"];?>","delete","menunhom",
									function(){
										$("#menunhom_tree").jstree("remove");
									},
									function(){
										msgbox("fail","Không có quyền xóa nhóm menu !");
									});
							}
						};
						a.rename={
							"label":"Đổi tên",
							"icon":false,
							"action":function(){
									check_right("<?php echo $_SESSION["un"];?>","delete","menunhom",
									function(){
										$("#menunhom_tree").jstree("rename");
									},
									function(){
										msgbox("fail","Không có quyền cập nhật nhóm menu !");
									});
							}
						};
					
					return a;
				}//items
			},//contextmenu
			"xml_data":{
				"ajax":{
					"url":"modules/menunhom/jstree.php",
					"data":function(n)
					{
						return {
							 "id":n.attr ? n.attr("id"): ""
						};
					}
				},//ajax
				"xsl":"flat"
			},// xml_data
			"search" : {
				"case_insensitive" : true,
				"search_method": "jstree_contains_multi"
			}, //Search
			"crrm" : {
				"move" : {
					"check_move" : function (m) { 
						return (m.o[0].id === "mn0") ? false : true;  
					}
				}
        	}
		}).bind("select_node.jstree", function (e, data) {
			var id=data.rslt.obj.attr("id").replace("mn","");
			var title="Món thuộc nhóm menu ["+data.inst.get_text()+"]";
			if(id==0) title="Không phải nhóm menu !";
			$("#menunhom_sn_table #h3title").html(title);
            loadMenumuc(id);
        }).bind("rename.jstree", function (e, data) {
			$.post(
				"modules/menunhom/jstree.rename.php", 
				{ 
					"id" : data.rslt.obj.attr("id").replace("mn",""),
					"ten" : data.rslt.new_name
				}, 
				function (r) {
					if(r.status==0) {
						msgbox("fail",r.msg);
						$.jstree.rollback(data.rlbk);
					}
				}
			);
		}).bind("remove.jstree", function (e, data) {
			data.rslt.obj.each(function(){
				var id=this.id.replace("mn","");
				if(id=="0") 
				{
					$.jstree.rollback(data.rlbk);
					msgbox("fail","Đây là nơi tạo nhóm menu gốc mới. Không phải nhóm menu thật sự.");
					return;
				}
				var name=$(this).find("a:first").text();
				$.confirmDialog({
						msg:"Có chắc chắn xoá nhóm menu "+name+" không ?",
						yes:"Có",
						no:"Không",
						title:"Xác nhận xoá"
				},function(){
					$.ajax({
						type: 'POST',
						url: "modules/menunhom/jstree.remove.php",
						data : { 
							"id" : id
						}, 
						success : function (r) {
							if(r.status==1) {
								data.inst.refresh();
							}
							else 
							{
								msgbox("fail","Nhóm menu "+name+" đang được sử dụng !");
								$.jstree.rollback(data.rlbk);
							}
						}
					});//ajax
				},function(){
					$.jstree.rollback(data.rlbk);
				});
			});
		}).bind("create.jstree", function (e, data) {
			var k="0"; 
			if(data.rslt.parent!=-1) k=data.rslt.parent.attr("id").replace("mn","");
			$.post(
				"modules/menunhom/jstree.create.php", 
				{ 
					"id" : k, 
					"ten" : data.rslt.name,
				}, 
				function (r) {
					if(r.status==1) {
						$(data.rslt.obj).attr("id", "mn" + r.id);
						data.inst.refresh();
					}
					else {
						msgbox("fail","Không thể tạo được nhóm menu !");
						$.jstree.rollback(data.rlbk);
					}
				});
		}).bind("move_node.jstree", function (e, data) {
			data.rslt.o.each(function (i) {
				$.ajax({
					type: 'POST',
					url: "modules/menunhom/jstree.move_node.php",
					data : { 
						"id" : $(this).attr("id").replace("mn",""), 
						"target" : data.rslt.cr === -1 ? 0 : data.rslt.np.attr("id").replace("mn",""), 
					},
					success : function (r) {
						if(!r.status) {
							$.jstree.rollback(data.rlbk);
						}
						else {
							$(data.rslt.oc).attr("id", "mn" + r.id);
						}
					}//success
				}); //ajax
			});//each
		}); // bind

		$("#menunhom_sn_table #mustresize").resizable({minHeight:500,maxHeight:500,minWidth:200});
		$("#menunhom_search").watermark("Tìm nhóm menu...");
		$("#menunhom_search").keypress(function(e){
			var code=(e.keyCode ? e.keyCode : e.which);
			if(code==13) 
			{
				$("#menunhom_tree").jstree("clear_search");
				var s=$("#menunhom_search").val();
				
				if(s=="") return;
				var so=0;
				if($("#cso2").attr("checked")=="checked") so=1;
				$.ajax({
					url:"modules/menunhom/jstree.search.php",
					type:"POST",
					dataType:"xml",
					data:"so="+so+"&search_str="+s,
					success: doneSearchMenuNhom
				});
			}
		});

		function doneSearchMenuNhom(xml)
		{
			var k=$(xml).find("result");
			var r="";
			console.log(k);
			for(i=0;i<k.length;i++)
				r=r+(k[i].textContent || k[i].text)+";";
			$("#menunhom_tree").jstree("search",r);
		}

		/*-------------------------------------------------------------------------------------------*/
		function loadMenumuc(id)
		{
			$("#menumuc_tree").empty();
			if(id!="0")
			$("#menumuc_tree").load("modules/menumuc/g.php?mnid="+id,{},function(){});
		}
</script>
